//app.js 这个是全局入口文件
App({
  // 1.应用第一次启动的就会触发的事件
  onLaunch: function () {
    // 在应用第一次启动的时候获取用户的个人信息
    // console.log("onLaunch111")
    // aabb

    // js的方式来跳转 不能触发onPageNotFound事件
    // wx.navigateTo({
    //   url: '/111/222/333',
    // })

    // 展示本地存储能力
    var logs = wx.getStorageSync('logs') || []
    logs.unshift(Date.now())
    wx.setStorageSync('logs', logs)

    // 登录
    wx.login({
      success: res => {
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
      }
    })

    // 获取用户信息
    wx.getSetting({
      success: res => {
        if (res.authSetting['scope.userInfo']) {
          // 已经授权，可以直接调用 getUserInfo 获取头像昵称，不会弹框
          wx.getUserInfo({
            success: res => {
              // 可以将 res 发送给后台解码出 unionId
              this.globalData.userInfo = res.userInfo

              // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
              // 所以此处加入 callback 以防止这种情况
              if (this.userInfoReadyCallback) {
                this.userInfoReadyCallback(res)
              }
            }
          })
        }
      }
    })
  },

  // 2.应用被用户看到
  //   应用场景: 当页面被重新看到的时候,对整个应用的数据或一些页面的数据进行重置
  onShow: function() {
    // console.log('onShow')
  },

  // 3.应用被隐藏了
  //   应用场景: 暂停或者清除定时器
  onHide: function() {
    // console.log('Hide')
  },

  // 4.应用的代码发生了报错的时候就会触发
  // 应用场景: 在应用发生代码报错的时候,收集用户的错误信息,通过异步请求将错误的信息发送后台去
  onError: function(err) {
    // console.log('onError')
    // console.log(err)
  },

  // 5.页面找不到就触发这个函数
  // 应用场景: 应用第一次启动的时候,如果找不到第一个入口页面才会触发
  onPageNotFound: function() {
    console.log('onPageNotFound')
    // 如果页面不存在了 通过js的方式来重新跳转页面 重新跳到第二个首页
    wx.navigateTo({
      url: '/pages/demo09/demo09',
    })
  },

  globalData: {
    userInfo: null
  }
})